package com.zhihuishu.micro.course.openapi.exam;

import com.zhihuishu.micro.course.openapi.exam.dto.ChapterWebDto;
import com.zhihuishu.micro.course.openapi.exam.dto.CourseOpenDto;
import com.zhihuishu.remote.RemoteException;
import com.zhihuishu.remote.RemoteResult;

public interface CourseOpenService {

	/**
	 * 根据章主键查询章信息
	 * @param chapterId
	 * @return
	 */
	RemoteResult<ChapterWebDto> queryChapter(int chapterId) ;
	
	/**
	 * 查询课程下章学习总天数(limitDay)，chapterId如果不为空，表示查询此章及之前所有章学习总天数
	 * @author	zhanglikun
	 * @param courseId
	 * @param chapterId
	 * @return
	 */
	RemoteResult<Integer> queryChaptersLimitDays(long courseId ,Integer chapterId) ;
	
	/**
	 * 查询课程LIMIT_DAY值
	 * @author	zhanglikun
	 * @param courseId
	 * @return
	 */
	RemoteResult<Integer> queryCourseLimitDays(long courseId) ;

	/**
	 * 查询课程名称
	 * @param courseId
	 * @return
	 */
	RemoteResult<String> queryCourseName(long courseId) ;
	/**
	 * 根据课程ids清除课程进度信息redis缓存
	 * @author yulijin
	 * @date 2016年8月18日 下午2:00:07
	 * @param courseIds
	 * @return
	 * @throws RemoteException
	 */
	RemoteResult<Void> delProgressByCourseId(Long courseId) throws RemoteException;
	/**
	 * @Description:根据课程id查课程类型 1进阶 2 微课 3校内 4 海外
	 *  @date:@2016年12月30日上午11:31:42
	 *  @author:嵇鹏
	 *  @Param:
	 *  @retuen:RemoteResult<Integer>
	 */
	RemoteResult<Integer> queryCourseTypeByCourseId(long courseId);
	/**
	 * @Description:根据课程id查询课程信息
	 *  @date:@2017年1月23日下午4:41:00
	 *  @author:嵇鹏
	 *  @Param:
	 *  @retuen:RemoteResult<CourseOpenDto>
	 */
	RemoteResult<CourseOpenDto> queryCourseInfoByCourseId(long courseId);
}
